#!/bin/bash
# move function

##########################################
# SSOO Grupo 06 - 2012, 2° Cuatrimestre  #
#         Funcion moverW5.sh             #
##########################################

# Uso de la funcion: ./moverW5 <path/archivo_fuente> <path_destino> <comando_ejecutor>*
# * El ultimo comando es opcional, el cual especifica desde donde fue llamada la funcion mover.
# La funcion de este script es la de mover, no copiar, el archivo fuente especificado al directorio destino, luego de #  realizar las validaciones de los datos de entrada.

LOGGER_EXE="perl $BINDIR/LoguearW5.pl"
comando_log="moverW5.sh"

moverW5()
{
local comando_log="moverW5.sh"

if [ $# -gt 3 ]; then
	$LOGGER_EXE -m="Demasiados argumentos. Usage: moverW5 <sourceFile> <destFolder> [commandInvoked]" -a -l="$comando_log"
	return 1
fi

if [ $# -lt 2 ]; then
	$LOGGER_EXE -m="pocos argumentos. Usage: moverW5 <sourceFile> <destFolder> [commandInvoked]" -a -l="$comando_log"
	return 1
fi

if [ ! -d "$2" ]; then
	$LOGGER_EXE -e -c="802" -l="$comando_log" # directorio destino invalido
	return 1
fi

commandUsed=""
source_filename="${1##*/}"
source_directory="${1%/*}"
dest_path="$2"
if [ ! -d "$source_directory" ]; then
	$LOGGER_EXE -e -c="802" -l="$comando_log" # directorio fuente invalido.
	return 1
fi

if [ $(echo $2 | grep '.*/$' | wc -l) -eq 0 ]; then
	dest_path=${2}/  # agrego barra al directorio destino porque no tenia.
fi

if [ $# -eq 3 ]; then
	commandUsed=$3
fi

if [ -f "$1" ]; then # archivo fuente existe.
  	if [ -f "${dest_path}${source_filename}.0" ]; then # archivo fuente ya se encuentra en el directorio destino
		sequence_number=$(ls $dest_path -1 | grep "^$source_filename.[0-9][0-9]*" | wc -l)
		mv "$1" "${dest_path}${source_filename}.$sequence_number" # muevo agregando la secuencia como extension.
	else
		mv "$1" "${dest_path}${source_filename}.0"
	fi
	if [ "$commandUsed" -eq "" ]; then
		$LOGGER_EXE -m="Funcion mover exitosa." -i -l="$comando_log"
	else
		$LOGGER_EXE -m="Funcion mover exitosa en ambiente $commandUsed." -i -l="$comando_log"
	fi
else
	$LOGGER_EXE -e -c="124" -l="$comando_log" #archivo fuente invalido
	return 1
fi
return 0
}

export -f moverW5
